package com.data.structure.algorithm.选择排序;

import java.util.Arrays;

/**
 * @Description 选择排序 O(n^2)
 * @author ll
 * @createTime 2021/6/3  14:58 
 */
public class SelectSort {

	/**
	 * 选择排序
	 * @param arr
	 */
	public static void selectSort(int[] arr){
		if(arr==null||arr.length<=1){
			return;
		}
		int size = arr.length;
		for(int i=0;i<size-1;i++){
			//存储最小值的下标
			int minIndex = i;
			for(int j = i+1;j<size;j++){
				if(arr[j]<arr[minIndex]){
					minIndex = j;
				}
			}
			swap(arr,minIndex,i);
		}
	}

	/**
	 * 交换两个值
	 * @param arr
	 * @param a
	 * @param b
	 */
	private static void swap(int []arr,int a,int b){
		int temp = arr[b];
		arr[b] = arr[a];
		arr[a] = temp;
	}

	public static void main(String[] args) {
		int[] arr = {1,5,3,2,6,9,5,7};
		selectSort(arr);
		System.out.println(Arrays.toString(arr));
	}
}
